package com.bwie.system.service;

import com.bwie.common.domain.User;
import com.bwie.common.domain.request.UserReqList;
import com.bwie.common.domain.request.UserReqLogin;
import com.bwie.common.domain.request.UserReqSignUp;
import com.bwie.common.result.Result;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Author Junchen_N1
 * @Date 2025/6/17 9:31
 * @ClassName UserService
 * @Description TODO
 */
public interface UserService {
    Result<User> selectUserByUsernameAndPassword(UserReqLogin userReqLogin);

    Result<List<User>> selectUserFriendsListByUserId(Integer userId);

    void sendSmsMsg(String tel);

    Result<User> selectUserByUsername(String username);

    Result<User> selectUserByTel(String tel);

    void addUser(UserReqSignUp userReqSignUp);

    Result<List<User>> selectFriendListByLoginUser(UserReqList userReqList);

    void deleteFriend(Integer userId);

    Result<List<User>> selectNotMyFriendList(UserReqList userReqList);

    void addFriend(Integer userId);

    User getLoginUserMsgToVue();

    User findById(Integer userId);

    void updateUserBalance(Integer userId, BigDecimal redPacketPrice, Integer status);

    void addRedPacketReceived(Integer redPacketId, String redPacketName, Integer userId, String username, BigDecimal snatchPrice);

    Integer findByIdOfUserRedPacketReceive(Integer userId, Integer redPacketId);
}
